Many computers, televisions, and other equipment use on screen displays (OSDs) to display and adjust parameters related to the equipment. For example, OSDs may visually represent the level of volume, contrast, brightness, vertical position, horizontal position, and the like. While the user is adjusting the parameter, the OSD provides visual feedback to the user relating to the adjustment they are performing.
Existing OSD devices, however, are expensive and put a heavy load on the microcontroller. OSDs typically contain two major elements. The first element is an area of ROM to store bit map arrays of characters or icons that will be displayed on the screen. Each character array (typically 18 pixels high by 12 pixels deep) is given a code (e.g. 0–255), which can be used as part of the addressing system to identify the bit map in ROM.
The second element is an area of RAM (Page RAM), to define the appearance of the displayed ‘page’ or image on the screen. The Page RAM contains lists of character codes that define which character will be displayed at each location.
The microcontroller stores the page definition character code listings for each page, requiring a custom mask microcontroller, and significant microcontroller ROM (typically 2–4 Kbytes) adding the cost of the micro controller.
The microcontroller is programmed to display the OSD, and update the display when certain actions are taken, such as when user controls are activated. This involves a large firmware overhead, which requires more ROM to store, and a faster, higher power microcontroller to generate and manage the OSD images and user interface.
Lower end displays typically do not implement an OSD, but instead rely upon a number of front panel controls to manage the user interface. One of the front panel controls is a button array system and another is a button plus LED system.
In the button array system type of display, the user has an array of buttons with a printed icon illustrating the function of the button. Many buttons are required to adjust the various parameters and so typically, a membrane type switch panel is used so that multiple switches can be accommodated in an array in one assembly. The microcontroller must periodically scan the array for any button being pressed, and then interpret that into a function command to change the desired function (e.g. contrast or picture size). The switch membrane is expensive, and the number of buttons that can be scanned is limited by the number of available ports of the micro controller, which is again, a function of microcontroller cost.
In the button plus LED system type of display a small number of buttons, are used for a function select (normally two buttons) and a small number of buttons are used for a function adjust (normally two buttons). According to this system, the user receives a low level of visual feedback of the selected function by LEDs visible through holes in the front bezel adjacent to printed or embossed icons. As the buttons are pressed, each LED is illuminated in turn to show which function is selected. This system requires many LED's and a microcontroller port to drive each LED. In addition, the bezel of the device is custom molded, which is a time consuming and expensive limitation.
What is needed is a low cost OSD system that can be placed within devices that normally would not have implemented an OSD due to cost limitations.